From 2695cd025a680d3bb86d10ae2732d8701b6b0eb4 Mon Sep 17 00:00:00 2001 From: Tim Deegan Date: Mon, 26 Feb 2007 09:28:30 +0000 Subject: [PATCH] [HVM] Revert cset 14083 which was wrong, and not very useful. Signed-off-by: Tim Deegan --- xen/arch/x86/mm/shadow/multi.c | 3 +-- xen/include/asm-x86/p2m.h | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c index 837e34733c..248e90216b 100644 --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -2394,8 +2394,7 @@ static int validate_gl1e(struct vcpu *v, void *new_ge, mfn_t sl1mfn, void *se) gfn = guest_l1e_get_gfn(*new_gl1e); gmfn = vcpu_gfn_to_mfn(v, gfn); - mmio = (is_hvm_vcpu(v) && paging_vcpu_mode_translate(v) && - mmio_space(gfn_to_paddr(gfn))); + mmio = (is_hvm_vcpu(v) && paging_vcpu_mode_translate(v) && !mfn_valid(gmfn)); l1e_propagate_from_guest(v, new_gl1e, _mfn(INVALID_MFN), gmfn, &new_sl1e, ft_prefetch, mmio); diff --git a/xen/include/asm-x86/p2m.h b/xen/include/asm-x86/p2m.h index cf536b0248..8ba23da3b5 100644 --- a/xen/include/asm-x86/p2m.h +++ b/xen/include/asm-x86/p2m.h @@ -86,11 +86,11 @@ static inline unsigned long get_mfn_from_gpfn(unsigned long pfn) return mfn_x(gfn_to_mfn_current(pfn)); } -/* Is this guest address an mmio one? */ +/* Is this guest address an mmio one? (i.e. not defined in p2m map) */ static inline int mmio_space(paddr_t gpa) { - return (gpa >= 0xf0000000 /* 256MB hole just below 4GB */ - || (gpa >= 0xa0000 && gpa < 0xc0000)); /* VGA hole */ + unsigned long gfn = gpa >> PAGE_SHIFT; + return !mfn_valid(mfn_x(gfn_to_mfn_current(gfn))); } /* Translate the frame number held in an l1e from guest to machine */ -- 2.30.2